package com.example.auction.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 拍品表
 * </p>
 *
 * @author winki
 * @since 2025-04-19
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class Item implements Serializable {


    private static final long serialVersionUID = 1L;

    /**
     * 拍品编号
     */
    @TableId
    private Long id;

    /**
     * 拍品标题
     */
    private String title;

    /**
     * 拍品详情
     */
    private String description;

    /**
     * 初始价格
     */
    private BigDecimal startPrice;

    /**
     * 当前价格
     */
    private BigDecimal currentPrice;

    /**
     * 1:拍卖中 2:成交 3:流拍
     */
    private Byte status;

    /**
     * 开始时间
     */
    private LocalDateTime startTime;

    /**
     * 结束时间
     */
    private LocalDateTime endTime;

    /**
     * 所有者id
     */
    private Integer ownerId;

    /**
     * 拍品介绍
     */
    private String introduce;

    /**
     * 拍品图片
     */
    private String imgUrl;

    /**
     * 秒杀状态，促销活动状态
     */
    private Integer seckillStatus;

    /**
     * 发布状态
     */
    private Integer publishStatus;

    /**
     * 1:双方自行交易2：线上支付
     */
    private Integer paymentMethod;

    /**
     * 延时时长
     */
    private LocalDateTime delayTime;

    /**
     * 限制加价幅度状态
     */
    private Integer priceIncreaseRangeStatus;

    /**
     * 佣金状态
     */
    private Integer commissonStatus;

    /**
     * 订阅者参与状态
     */
    private Integer subscriberStatus;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 创建人
     */
    private Long createId;

    /**
     * 修改人
     */
    private Long updateId;

    public Long getItemId() {
        return id;
    }

    public void setItemId(Long itemId) {
        this.id = itemId;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public BigDecimal getStartPrice() {
        return startPrice;
    }

    public void setStartPrice(BigDecimal startPrice) {
        this.startPrice = startPrice;
    }

    public BigDecimal getCurrentPrice() {
        return currentPrice;
    }

    public void setCurrentPrice(BigDecimal currentPrice) {
        this.currentPrice = currentPrice;
    }

    public Byte getStatus() {
        return status;
    }

    public void setStatus(Byte status) {
        this.status = status;
    }

    public LocalDateTime getStartTime() {
        return startTime;
    }

    public void setStartTime(LocalDateTime startTime) {
        this.startTime = startTime;
    }

    public LocalDateTime getEndTime() {
        return endTime;
    }

    public void setEndTime(LocalDateTime endTime) {
        this.endTime = endTime;
    }

    public Integer getOwnerId() {
        return ownerId;
    }

    public void setOwnerId(Integer ownerId) {
        this.ownerId = ownerId;
    }

    public String getIntroduce() {
        return introduce;
    }

    public void setIntroduce(String introduce) {
        this.introduce = introduce;
    }

    public String getImgUrl() {
        return imgUrl;
    }

    public void setImgUrl(String imgUrl) {
        this.imgUrl = imgUrl;
    }

    public Integer getSeckillStatus() {
        return seckillStatus;
    }

    public void setSeckillStatus(Integer seckillStatus) {
        this.seckillStatus = seckillStatus;
    }

    public Integer getPublishStatus() {
        return publishStatus;
    }

    public void setPublishStatus(Integer publishStatus) {
        this.publishStatus = publishStatus;
    }

    public Integer getPaymentMethod() {
        return paymentMethod;
    }

    public void setPaymentMethod(Integer paymentMethod) {
        this.paymentMethod = paymentMethod;
    }

    public LocalDateTime getDelayTime() {
        return delayTime;
    }

    public void setDelayTime(LocalDateTime delayTime) {
        this.delayTime = delayTime;
    }

    public Integer getPriceIncreaseRangeStatus() {
        return priceIncreaseRangeStatus;
    }

    public void setPriceIncreaseRangeStatus(Integer priceIncreaseRangeStatus) {
        this.priceIncreaseRangeStatus = priceIncreaseRangeStatus;
    }

    public Integer getCommissonStatus() {
        return commissonStatus;
    }

    public void setCommissonStatus(Integer commissonStatus) {
        this.commissonStatus = commissonStatus;
    }

    public Integer getSubscriberStatus() {
        return subscriberStatus;
    }

    public void setSubscriberStatus(Integer subscriberStatus) {
        this.subscriberStatus = subscriberStatus;
    }

    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }

    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }

    public Long getCreateId() {
        return createId;
    }

    public void setCreateId(Long createId) {
        this.createId = createId;
    }

    public Long getUpdateId() {
        return updateId;
    }

    public void setUpdateId(Long updateId) {
        this.updateId = updateId;
    }

    @Override
    public String toString() {
        return "Item{" +
            "itemId = " + id +
            ", title = " + title +
            ", description = " + description +
            ", startPrice = " + startPrice +
            ", currentPrice = " + currentPrice +
            ", status = " + status +
            ", startTime = " + startTime +
            ", endTime = " + endTime +
            ", ownerId = " + ownerId +
            ", introduce = " + introduce +
            ", imgUrl = " + imgUrl +
            ", seckillStatus = " + seckillStatus +
            ", publishStatus = " + publishStatus +
            ", paymentMethod = " + paymentMethod +
            ", delayTime = " + delayTime +
            ", priceIncreaseRangeStatus = " + priceIncreaseRangeStatus +
            ", commissonStatus = " + commissonStatus +
            ", subscriberStatus = " + subscriberStatus +
            ", createTime = " + createTime +
            ", updateTime = " + updateTime +
            ", createId = " + createId +
            ", updateId = " + updateId +
        "}";
    }
}
